package br.com.sigeden.model;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;

/**
 *
 * @author David Amom <davidamom@gmail.com>
 */
@Entity
@Table(name = "denuncia", catalog = "sigeden")
public class Denuncia implements java.io.Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", unique = true, nullable = false)
    private Long id;
    @Column(name = "bo_registrado")
    private char boRegistrado;
    @Temporal(javax.persistence.TemporalType.DATE)
    @Column(name = "data_denuncia")
    private Date dataDenuncia;
    @Column(name = "data_criacao_denuncia")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataCriacaoDenuncia;
    @Column(name = "descricao")
    private String descricao;
    @Column(name = "latitude")
    private String latitude;
    @Column(name = "longitude")
    private String longitude;
    @JoinColumn(name = "tipo_denuncia_id")
    private String tipoDenuncia;
    @JoinColumn(name = "endereco_id")
    private String endereco;
    @JoinColumn(name = "autor_id")
    private String autor;
    private String categoria;
    private String subcategoria;
    private String condicao;
    private char sexo;
    private Integer afirmacoes;
    @OneToMany(cascade = CascadeType.ALL)
    private Collection<Envolvido> envolvidos = new ArrayList<Envolvido>();
    @JoinColumn(name = "entidade_id")
    private String entidade;

    public Denuncia() {
    }

    public Denuncia(Long id, char boRegistrado, Date dataDenuncia, Date dataCriacaoDenuncia, String descricao, String latitude, String longitude, String tipoDenuncia, String endereco, String autor, String categoria, String subcategoria, String condicao, char sexo, Integer afirmacoes, String entidade) {
        this.id = id;
        this.boRegistrado = boRegistrado;
        this.dataDenuncia = dataDenuncia;
        this.dataCriacaoDenuncia = dataCriacaoDenuncia;
        this.descricao = descricao;
        this.latitude = latitude;
        this.longitude = longitude;
        this.tipoDenuncia = tipoDenuncia;
        this.endereco = endereco;
        this.autor = autor;
        this.categoria = categoria;
        this.subcategoria = subcategoria;
        this.condicao = condicao;
        this.sexo = sexo;
        this.afirmacoes = afirmacoes;
        this.entidade = entidade;
    }

    
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public char getBoRegistrado() {
        return boRegistrado;
    }

    public void setBoRegistrado(char boRegistrado) {
        this.boRegistrado = boRegistrado;
    }

    public Date getDataDenuncia() {
        return dataDenuncia;
    }

    public void setDataDenuncia(Date dataDenuncia) {
        this.dataDenuncia = dataDenuncia;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public String getLatitude() {
        return latitude;
    }

    public void setLatitude(String latitude) {
        this.latitude = latitude;
    }

    public String getLongitude() {
        return longitude;
    }

    public void setLongitude(String longitude) {
        this.longitude = longitude;
    }

    public String getTipoDenuncia() {
        return tipoDenuncia;
    }

    public void setTipoDenuncia(String tipoDenuncia) {
        this.tipoDenuncia = tipoDenuncia;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getAutor() {
        return autor;
    }

    public void setAutor(String autor) {
        this.autor = autor;
    }

    public String getCategoria() {
        return categoria;
    }

    public void setCategoria(String categoria) {
        this.categoria = categoria;
    }

    public String getSubcategoria() {
        return subcategoria;
    }

    public void setSubcategoria(String subcategoria) {
        this.subcategoria = subcategoria;
    }

    public String getCondicao() {
        return condicao;
    }

    public void setCondicao(String condicao) {
        this.condicao = condicao;
    }

    public Collection<Envolvido> getEnvolvidos() {
        return envolvidos;
    }

    public void setEnvolvidos(Collection<Envolvido> envolvidos) {
        this.envolvidos = envolvidos;
    }

    public String getEntidade() {
        return entidade;
    }

    public void setEntidade(String entidade) {
        this.entidade = entidade;
    }

    public char getSexo() {
        return sexo;
    }

    public void setSexo(char sexo) {
        this.sexo = sexo;
    }

    public Integer getAfirmacoes() {
        return afirmacoes;
    }

    public void setAfirmacoes(Integer afirmacoes) {
        this.afirmacoes = afirmacoes;
    }

    public Date getDataCriacaoDenuncia() {
        return dataCriacaoDenuncia;
    }

    public void setDataCriacaoDenuncia(Date dataCriacaoDenuncia) {
        this.dataCriacaoDenuncia = dataCriacaoDenuncia;
    }
    
    
}
